package presentacion.Color;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import negocio.Color.TransferColor;

import presentacion.Controlador.Controlador;
import presentacion.Controlador.Eventos;

public class PanelColor extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1371363577173302392L;
	private JButton nuevoColor, eliminarColor, buscarColor , actualizarColor;
	
	
	public PanelColor(){
		
		this.nuevoColor = new JButton("Nuevo color");
		this.eliminarColor = new JButton("Eliminar color");
		this.buscarColor = new JButton("Buscar color");
		this.actualizarColor = new JButton("Actualizar color");
		
		final JTextField text = new JTextField(20);
		final JLabel lID =  new JLabel("ID DEL COLOR: ");
		
		this.setLayout(new GridLayout(2,2, 2,2));
		this.add(this.nuevoColor);
		this.add(this.eliminarColor);
		this.add(this.buscarColor);
		this.add(this.actualizarColor);
				
		final Controlador c = Controlador.getInstancia();

		this.nuevoColor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame nueva = new JFrame("NUEVO COLOR");
				JButton boton = new JButton("CREAR");
				JLabel nombre = new JLabel("Nombre del color: ");
				
				nueva.setLayout(new FlowLayout());
				nueva.add(nombre);
				nueva.add(text);
				nueva.add(boton);
				
				nueva.pack();
				nueva.setVisible(true);
				nueva.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
												
						if(text.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido nombre del color");
						else
						{
						TransferColor tColor = new TransferColor(text.getText());
						c.accionColor(Eventos.crearColor, tColor);		
						}
					}
				});				
			}
		});
		
		this.eliminarColor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame nueva = new JFrame("ELIMINAR COLOR");
				JButton boton = new JButton("ELIMINAR");
				
				nueva.setLayout(new FlowLayout());
				nueva.add(lID);
				nueva.add(text);
				nueva.add(boton);
				
				nueva.pack();
				nueva.setVisible(true);
				nueva.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
												
						if(text.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido el id del color");
						else
						{
						try{				
							TransferColor tColor = new TransferColor(Integer.parseInt(text.getText()));
							c.accionColor(Eventos.eliminarColor, tColor);
						    }catch(NumberFormatException e)
							{
							 JOptionPane.showMessageDialog(null,"formato de ID inadecuado");	
							}
						}
					}
				});				
			}
		});
		
		this.buscarColor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame nueva = new JFrame("BUSCAR COLOR");
				JButton boton = new JButton("BUSCAR");
				
				nueva.setLayout(new FlowLayout());
				nueva.add(lID);
				nueva.add(text);
				nueva.add(boton);
				
				nueva.pack();
				nueva.setVisible(true);
				nueva.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						
						if(text.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido id del color");
						else
						{
						try{				
							TransferColor tColor = new TransferColor(Integer.parseInt(text.getText()));
							c.accionColor(Eventos.buscarColor, tColor);
						    }catch(NumberFormatException e)
							{
							 JOptionPane.showMessageDialog(null,"formato de ID inadecuado");	
							}
						}					
					}
				});				
			}
		});
		
		this.actualizarColor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame nueva = new JFrame("ACTUALIZAR COLOR");
				JButton boton = new JButton("ACTUALIZAR");
				JLabel nombre = new JLabel("Nombre del color: ");
				final JTextField upd =  new JTextField(20);
				
				nueva.setLayout(new FlowLayout());
				nueva.add(lID);
				nueva.add(text);
				nueva.add(nombre);
				nueva.add(upd);
				nueva.add(boton);
				
				nueva.pack();
				nueva.setVisible(true);
				nueva.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						
						if(text.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido el id del color");
						else if(upd.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido el nombre del color");	
						else{
							try{				
								TransferColor tColor = new TransferColor(upd.getText(),Integer.parseInt(text.getText()));
								c.accionColor(Eventos.actualizarColor , tColor);
						    }catch(NumberFormatException e)
							{
							 JOptionPane.showMessageDialog(null,"formato de ID inadecuado");	
							}
						}											
					}
				});
								
			}
		});
	}
}
